package sort;

import java.text.CollationKey;
import java.text.RuleBasedCollator;
import java.text.Collator;
import java.util.Comparator;

public class CollatorComparator implements Comparator {

	Collator collator = Collator.getInstance();
	//RuleBasedCollator collator = (RuleBasedCollator) Collator.getInstance(java.util.Locale.CHINA);

	public int compare(Object element1, Object element2) {

		CollationKey key1 = collator.getCollationKey(element1.toString().toLowerCase());

		CollationKey key2 = collator.getCollationKey(element2.toString().toLowerCase());

		//return key1.compareTo(key2);
		return  collator.compare(key1.getSourceString(), key2.getSourceString());
	}

}
/*compareTo是Compareable接口的一个方法，主要用于规定创建对象的大小关系，该对象要实现compareable接口
	当a.compareTo(b)>0时，则a>b, 当a.compareTo(b)<0时， a<b.

compare方法是java.util中的Comparator接口的一个方法，compare方法内主要靠定义compareTo规定的对象大小关系来确定对象的大小。
*/